Skip to content

stdlib: implement driver.RowsColumnScanner for Go 1.27#2542

Draft
jackc wants to merge 1 commit into
masterfrom
go-67546-stdlib-rows-column-scanner-2
Draft

stdlib: implement driver.RowsColumnScanner for Go 1.27#2542
jackc wants to merge 1 commit into
masterfrom
go-67546-stdlib-rows-column-scanner-2

Conversation

@jackc
Copy link
Copy Markdown
Owner

@jackc jackc commented Apr 25, 2026

Go 1.27 adds the driver.RowsColumnScanner interface, which lets a driver scan a column directly into the user's destination. This means stdlib users can now scan PostgreSQL arrays, ranges, multiranges, and other pgtype-aware values directly into Go slices and pgtype types without the *pgtype.Map.SQLScanner adapter.

ScanColumn first tries m.Scan for pgx-native handling, then falls back to the newly public sql.ConvertAssign on a driver.Value produced by the column codec. The fallback preserves database/sql conversion semantics (e.g., scanning a binary bool into *string yields "true"/"false") for destinations pgx does not recognize.

Go 1.27 adds the driver.RowsColumnScanner interface, which lets a driver
scan a column directly into the user's destination. This means stdlib
users can now scan PostgreSQL arrays, ranges, multiranges, and other
pgtype-aware values directly into Go slices and pgtype types without
the *pgtype.Map.SQLScanner adapter.

ScanColumn first tries m.Scan for pgx-native handling, then falls back
to the newly public sql.ConvertAssign on a driver.Value produced by the
column codec. The fallback preserves database/sql conversion semantics
(e.g., scanning a binary bool into *string yields "true"/"false") for
destinations pgx does not recognize.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant